Information is conveniently stored in repositories such as databases. Stored information is accessed and updated with applications executing in a database management system (DBMS). A DBMS functions to store and access information in a database in one or more data containers, each of which contains records. The data within each record is organized into one or more attribute fields. Various database architectures exist.
The data containers of relational databases are tables and the records stored therein are rows. The database can contain virtually any number of tables, the attributes of which, are referred to as columns. The data containers of an object oriented database are object classes, the records of which comprise objects, which have attributes referred to as object attributes. Other database architectures also exist. For simplicity and unity herein, a relational database is discussed, solely by way of example.
Applications are upgraded from time to time. For instance, an installed application may be upgraded when a new version of the application code becomes available. With database and related applications, upgrading to a new version frequently requires that a column be added to an existing table, e.g., stored in a relational database.
Upon adding a new column, one of two conditions are is typically satisfied. Either all existing rows in the table store a null value for the column being added, or all existing rows store a default value for that column.
In the latter case, the default value is set at the time the column is added. The operation of adding a column with a default value may expend a lot time during which the database server or the table may not be available. This can cause significant inconvenience and expense.
The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.
Based on the foregoing, it could be useful to reduce the downtime and concomitant inconvenience and expense in updating applications.